package gy.rpc.client.util;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * @author G_Y
 * 2018年4月22日
 * 客户端代理工具类
 */
public class ClientProxyUtil {
	
    /**
     * @param cls
     * @param invocationHandle
     * @return
     * @author G_Y
     * 2018年4月22日
     * 获取接口类的代理实例
     */
    public static Object getProxyInstance(Class<?> cls, InvocationHandler invocationHandle) {
        Object proxyInstance = null;
        Class<?>[] Interfaces = new Class[]{cls};
        if(!cls.isInterface()){
            throw new RuntimeException("代理类型非接口类型");
        }
        //jdk动态获取代理对象
        proxyInstance = Proxy.newProxyInstance(
                cls.getClassLoader(),  
                Interfaces, 
                invocationHandle);
        return proxyInstance;
    }
    
}
